<div class="installer_box">
  {% alert level="info" %}
  На текущий момент графический установщик поддерживает **не все платформы**. Установить DKP с его помощью возможно в следующие окружения:

  * Bare metal (выделенные хосты);
  * Deckhouse Virtualization Platform (DVP);
  * Yandex Cloud;
  * OpenStack;
  * Selectel (OpenStack);
  * VK Cloud (OpenStack);
  * VMware vCloud Director;
  * VMware vSphere.

  Поддерживаются **все редакции** от CE до EE, включая Deckhouse Certified Security Edition (bare metal).

  **Внимание.** Установка Deckhouse Certified Security Edition с помощью графического установщика не сертифицирована и  допускается **только** для целей тестирования.
  {% endalert %}
  <div class="installer_two-columns">
    <div>
      <ol>
        <li>Запустите docker на вашем компьютере</li>
        <li>
          <p>Запустите установщик</p>
          <div class="tabs">
            <button id="tab-button-mac" class="tab-button active" onclick="openTab(event, 'tab-mac'); openMacTab(event, 'tab-mac-content-container'); openMacDefaultTab();">macOS</button>
            <button id="tab-button-linux" class="tab-button" onclick="openTab(event, 'tab-linux'); openLinuxTab(event, 'tab-linux-content-container'); openLinuxDefaultTab();">Linux</button>
            <button id="tab-button-windows" class="tab-button" onclick="openTab(event, 'tab-windows')">Windows</button>
          </div>
          <div id="tab-mac" class="tab-content active">
            <div class="tabs">
              <button id="tab-buttons-mac-container" class="tab-button active" onclick="openMacTab(event, 'tab-mac-content-container')">Контейнером</button>
              <button id="tab-buttons-mac-script" class="tab-button" onclick="openMacTab(event, 'tab-mac-content-trdl')">С помощью trdl</button>
              <button id="tab-buttons-mac-file" class="tab-button" onclick="openMacTab(event, 'tab-mac-content-file')">Файлом</button>
            </div>
            <div id="tab-mac-content-container" class="tab-content active">
{% alert level="info" %}
Если у вас компьютер на базе Apple Silicon, то перед запуском контейнера убедитесь, что в настройках Docker Desktop включена Rosetta.
{% offtopic title="Как включить Rosetta..." %}
1. Перейдите в настройки Docker Desktop, нажав на значок шестерёнки в правом верхнем углу главного окна программы.
1. На вкладке «General» найдите раздел «Virtual Machine Options».
1. Включите пункт «Use Rosetta for x86_64/amd64 emulation on Apple Silicon».
   <img src="/images/gs/installer/enable-rosetta.png" alt="Включение Rosetta в настройках Docker Desktop">
{% endofftopic %}
{% endalert %}
              <p>Выполните команду:</p>
{% capture command %}
```bash
docker run --rm --pull always -v $HOME/.d8installer:$HOME/.d8installer -v /var/run/docker.sock:/var/run/docker.sock -p 8080:8080 registry.deckhouse.ru/deckhouse/installer:latest -r $HOME/.d8installer
```
{% endcapture %}
{{ command | markdownify }}
            </div>
            <div id="tab-mac-content-trdl" class="tab-content">
              <p>Начиная с версии 0.5.0 установщик можно установить на вашу машину с помощью <a href="https://ru.trdl.dev/">trdl</a>.</p>
              <ol>
                <li>Установите <a href="https://ru.trdl.dev/quickstart.html#%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-%D0%BA%D0%BB%D0%B8%D0%B5%D0%BD%D1%82%D0%B0">клиент trdl</a>.</li>
                <li><p>Добавьте репозиторий Deckhouse CLI в trdl:</p>
{% capture command %}
```bash
URL=https://deckhouse.ru/downloads/deckhouse-installer-trdl
ROOT_VERSION=1
ROOT_SHA512=62e4b351bd06ee962dca92c0650ecbd2bceca9a78c125836fa62186b046f07257015929c853eb8a6241d90d59b2995bb028389cdb30bfa9c0991b10ddc2c57bc
REPO=d8-installer
trdl add $REPO $URL $ROOT_VERSION $ROOT_SHA512
```
{% endcapture %}
{{ command | markdownify }}
                </li>
                <li>
                  <p>Установите последний выпуск установщика с канала early-access и проверьте его работоспособность:</p>
{% capture command %}
```bash
. $(trdl use -d d8-installer 0 ea) && d8install version
```
{% endcapture %}
{{ command | markdownify }}
                <p>Если вы не хотите вызывать <code>. $(trdl use -d d8-installer 0 ea)</code> перед каждым использованием установщика, добавьте строку <code>source $(trdl use -d d8-installer 0 ea)</code> в RC-файл вашей командной оболочки.</p>
                </li>
              </ol>
            </div>
            <div id="tab-mac-content-file" class="tab-content">
              <p>Скачайте установщик:
                <a href="/downloads/installer/darwin-arm64/d8install" class="download-btn">darwin-arm64</a>
                <a href="/downloads/installer/darwin-amd64/d8install" class="download-btn">darwin-amd64</a>
              </p>
              <p>Запустите его, выполнив команды ниже:</p>
{% capture command %}
```bash
chmod +x d8install
xattr -c d8install
./d8install -b
```
{% endcapture %}
{{ command | markdownify }}
            </div>
          </div>
          <div id="tab-linux" class="tab-content">
            <div class="tabs">
              <button id="tab-buttons-linux-container" class="tab-button active" onclick="openLinuxTab(event, 'tab-linux-content-container')">Контейнером</button>
              <button id="tab-buttons-linux-script" class="tab-button" onclick="openLinuxTab(event, 'tab-linux-content-trdl')">С помощью trdl</button>
              <button id="tab-buttons-linux-file" class="tab-button" onclick="openLinuxTab(event, 'tab-linux-content-file')">Файлом</button>
            </div>
            <div id="tab-linux-content-container" class="tab-content active">
              <p>Выполните команду:</p>
{% capture command %}
```bash
docker run --rm --pull always -v $HOME/.d8installer:$HOME/.d8installer -v /var/run/docker.sock:/var/run/docker.sock -p 8080:8080 registry.deckhouse.ru/deckhouse/installer:latest -r $HOME/.d8installer
```
{% endcapture %}
{{ command | markdownify }}
            </div>
            <div id="tab-linux-content-trdl" class="tab-content">
              <p>Начиная с версии 0.5.0 установщик можно установить на вашу машину с помощью <a href="https://ru.trdl.dev/">trdl</a>.</p>
              <ol>
                <li>Установите <a href="https://ru.trdl.dev/quickstart.html#%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-%D0%BA%D0%BB%D0%B8%D0%B5%D0%BD%D1%82%D0%B0">клиент trdl</a>.</li>
                <li><p>Добавьте репозиторий Deckhouse CLI в trdl:</p>
{% capture command %}
```bash
URL=https://deckhouse.ru/downloads/deckhouse-installer-trdl
ROOT_VERSION=1
ROOT_SHA512=62e4b351bd06ee962dca92c0650ecbd2bceca9a78c125836fa62186b046f07257015929c853eb8a6241d90d59b2995bb028389cdb30bfa9c0991b10ddc2c57bc
REPO=d8-installer
trdl add $REPO $URL $ROOT_VERSION $ROOT_SHA512
```
{% endcapture %}
{{ command | markdownify }}
                </li>
                <li>
                  <p>Установите последний выпуск установщика с канала early-access и проверьте его работоспособность:</p>
{% capture command %}
```bash
. $(trdl use -d d8-installer 0 ea) && d8install version
```
{% endcapture %}
{{ command | markdownify }}
                <p>Если вы не хотите вызывать <code>. $(trdl use -d d8-installer 0 ea)</code> перед каждым использованием установщика, добавьте строку <code>source $(trdl use -d d8-installer 0 ea)</code> в RC-файл вашей командной оболочки.</p>
                </li>
              </ol>
            </div>
            <div id="tab-linux-content-file" class="tab-content">
              <p>Скачайте установщик: <a href="/downloads/installer/linux-amd64/d8install" class="download-btn">amd64</a></p>
              <p>Запустите его, выполнив команды:</p>
{% capture command %}
```bash
chmod +x d8install
./d8install -b
```
{% endcapture %}
{{ command | markdownify }}
            </div>
          </div>
          <div id="tab-windows" class="tab-content">
{% alert level="info" %}
Перед запуском контейнера убедитесь, что у вас установлен [Docker Desktop](https://docs.docker.com/desktop/setup/install/windows-install/) и [включена подсистема WSL2](https://learn.microsoft.com/ru-ru/windows/wsl/install#install-wsl-command).
{% endalert %}
            <p>Выполните команду. Если вы работаете в командной строке:</p>
{% capture command %}
```bash
docker run --rm --pull always -v /mnt/host/c/Users/%USERNAME%/.d8installer:/mnt/host/c/Users/%USERNAME%/.d8installer -v /var/run/docker.sock:/var/run/docker.sock -p 8080:8080 registry.deckhouse.ru/deckhouse/installer:latest -r /mnt/host/c/Users/%USERNAME%/.d8installer
```
{% endcapture %}
{{ command | markdownify }}
            <p>Если вы работаете в Power Shell:</p>
{% capture command %}
```bash
docker run --rm --pull always -v /mnt/host/c/Users/$env:USERNAME/.d8installer:/mnt/host/c/Users/$env:USERNAME/.d8installer -v /var/run/docker.sock:/var/run/docker.sock -p 8080:8080 registry.deckhouse.ru/deckhouse/installer:latest -r /mnt/host/c/Users/$env:USERNAME/.d8installer
```
{% endcapture %}
{{ command | markdownify }}
          </div>
        </li>
        <li>Откройте <a>http://localhost:8080</a></li>
        <li>
          <p>Выполните следующие шаги:<p>
          <div class="tabs">
            <button id="tab-button-bare-metal" class="tab-button active" onclick="openInstallerTypeTab(event, 'tab-bare-metal-content');">Для bare-metal</button>
            <button id="tab-button-cloud" class="tab-button" onclick="openInstallerTypeTab(event, 'tab-cloud-content');">Для облачного кластера</button>
          </div>
          <div id="tab-bare-metal-content" class="tab-content active">
            {%- include getting_started/global/partials/installer/installer-steps-bare-metal.html %}
          </div>
          <div id="tab-cloud-content" class="tab-content">
            {%- include getting_started/global/partials/installer/installer-steps-cloud.html %}
          </div>
        </li>
      </ol>
    </div>
  </div>
</div>

<script>
  function openTab(evt, tabName) {
      document.getElementById("tab-mac").classList.remove("active");
      document.getElementById("tab-linux").classList.remove("active");
      document.getElementById("tab-windows").classList.remove("active");

      document.getElementById("tab-button-mac").classList.remove("active");
      document.getElementById("tab-button-linux").classList.remove("active");
      document.getElementById("tab-button-windows").classList.remove("active");

      document.getElementById(tabName).classList.add("active");
      evt.currentTarget.classList.add("active");
  }

  function openMacTab(evt, subTabName) {
      document.getElementById("tab-mac-content-container").classList.remove("active");
      document.getElementById("tab-mac-content-trdl").classList.remove("active");
      document.getElementById("tab-mac-content-file").classList.remove("active");

      document.getElementById("tab-buttons-mac-container").classList.remove("active");
      document.getElementById("tab-buttons-mac-script").classList.remove("active");
      document.getElementById("tab-buttons-mac-file").classList.remove("active");

      document.getElementById(subTabName).classList.add("active");
      evt.currentTarget.classList.add("active");
  }

  function openLinuxTab(evt, subTabName) {
      document.getElementById("tab-linux-content-container").classList.remove("active");
      document.getElementById("tab-linux-content-trdl").classList.remove("active");
      document.getElementById("tab-linux-content-file").classList.remove("active");

      document.getElementById("tab-buttons-linux-container").classList.remove("active");
      document.getElementById("tab-buttons-linux-script").classList.remove("active");
      document.getElementById("tab-buttons-linux-file").classList.remove("active");

      document.getElementById(subTabName).classList.add("active");
      evt.currentTarget.classList.add("active");
  }

  function openInstallerTypeTab(evt, subTabName) {
      document.getElementById("tab-bare-metal-content").classList.remove("active");
      document.getElementById("tab-cloud-content").classList.remove("active");

      document.getElementById("tab-button-bare-metal").classList.remove("active");
      document.getElementById("tab-button-cloud").classList.remove("active");

      document.getElementById(subTabName).classList.add("active");
      evt.currentTarget.classList.add("active");
  }

  function openLinuxDefaultTab() {
      document.getElementById("tab-buttons-linux-container").classList.add("active");
  }
  function openMacDefaultTab() {
      document.getElementById("tab-buttons-mac-container").classList.add("active");
  }
</script>
